This disclosure relates to analysis of instrumented software systems in general and more specifically to determining characteristics of servers based on data streams received from instrumented software executing on servers.
Software developers monitor different aspects of software they develop by instrumenting the code. These include performance of the software, errors encountered during execution of the software, significant events encountered during execution of the software, information describing which parts of code are being executed and which parts are not being executed, and so on. Instrumentation of software executing in large enterprises results in generation of large amounts of data. Analysis of this data is typically performed by experts and can take significant amount of time. For example, if a problem occurs in one or more servers, analysis of the data to identify the problem can take days or weeks. Conventional techniques are often unable to process the data received from the instrumented software in reasonable time to be able to detect problems in systems executing the software to be able to take fast and appropriate action. Furthermore, conventional techniques often do not provide high level information that identifies problems with systems executing the software and information useful for taking appropriate action for addressing a problem identified.